package com.esisa.IHM;

import java.util.ArrayList;
import java.util.Date;

import javax.swing.table.AbstractTableModel;

import com.esisa.beans.ListeSCORM;


public class ModelDynamiqueDocument extends AbstractTableModel{


	private final java.util.List<com.esisa.beans.Etudiant> Documents=new ArrayList<com.esisa.beans.Etudiant>();
	private final String[] entetes={"Nom","Prenom","Chemin","Age","Absence","Presence","Retard","Remarque"};
	public void init(){
		Documents.clear();
		ListeSCORM listGdoc=new ListeSCORM();
		listGdoc.load("resources/doc.txt");
		for (int i = 0; i < listGdoc.size(); i++) {
			Documents.add(new com.esisa.beans.Etudiant(
					listGdoc.getAt(i).getNom(),
					listGdoc.getAt(i).getPrenom(),
					listGdoc.getAt(i).getChemin(),
					listGdoc.getAt(i).getAge(),
					listGdoc.getAt(i).getAbsence(),
					listGdoc.getAt(i).getPresence(),
					listGdoc.getAt(i).getRetard(),
					listGdoc.getAt(i).getRemarque()
					
					)
					);
		}
	}
	public int getColumnCount() {
		return entetes.length;
	}
	public int getRowCount() {
		return Documents.size();
	}
	public String getColumnName(int columnIndex){
		return entetes[columnIndex];
	}
	public ModelDynamiqueDocument() {
		super();
		ListeSCORM listGdoc=new ListeSCORM();
		listGdoc.load("resources/doc.txt");
		for (int i = 0; i < listGdoc.size(); i++) {
			Documents.add(new com.esisa.beans.Etudiant(
					listGdoc.getAt(i).getNom(),
					listGdoc.getAt(i).getPrenom(),
					listGdoc.getAt(i).getChemin(),
					listGdoc.getAt(i).getAge(),
					listGdoc.getAt(i).getAbsence(),
					listGdoc.getAt(i).getPresence(),
					listGdoc.getAt(i).getRetard(),
					listGdoc.getAt(i).getRemarque()
					)
					);
		}
	}
	public Object getValueAt(int rowIndex, int columnIndex) {
		switch (columnIndex) {
		case 0:
			return Documents.get(rowIndex).getNom();
		case 1:
			return Documents.get(rowIndex).getPrenom();
		case 2:
			return Documents.get(rowIndex).getChemin();
		case 3:
			return Documents.get(rowIndex).getAge();
		case 4:
			return Documents.get(rowIndex).getAbsence();
		case 5:
			return Documents.get(rowIndex).getPresence();
		case 6:
			return Documents.get(rowIndex).getRetard();
		case 7:
			return Documents.get(rowIndex).getRemarque();
		
		default:
			return null;
		}
	}
	
	
	
	
	
	public void addGeneralDocument(com.esisa.beans.Etudiant d ){
		Documents.add(d);
		
		fireTableRowsInserted(Documents.size()-1,Documents.size()-1);
	}
	public void removeGeneralDocument(int rowIndex){
		
		Documents.remove(rowIndex);
		ListeSCORM ld=new ListeSCORM();
		for (int i = 0; i < Documents.size(); i++) {
			ld.add(Documents.get(i));
		}
		ld.save("resources/doc.txt");
		fireTableRowsDeleted(rowIndex, rowIndex);
	}
	public void rechercherexact(String champ){
		java.util.List<com.esisa.beans.Etudiant> Documents2=new ArrayList<com.esisa.beans.Etudiant>(Documents);
		Documents.clear();
		champ=champ.trim();
		champ=champ.toLowerCase();
		if (champ.equals("")) {
			ListeSCORM listGdoc=new ListeSCORM();
			listGdoc.load("resources/doc.txt");
			for (int i = 0; i < listGdoc.size(); i++) {
				Documents.add(new com.esisa.beans.Etudiant(
						listGdoc.getAt(i).getNom(),
						listGdoc.getAt(i).getPrenom(),
						listGdoc.getAt(i).getChemin(),
						listGdoc.getAt(i).getAge(),
						listGdoc.getAt(i).getAbsence(),
						listGdoc.getAt(i).getPresence(),
						listGdoc.getAt(i).getRetard(),
						listGdoc.getAt(i).getRemarque()
						)
						);
			}
		}else{
			for (int i = 0; i < Documents2.size(); i++) {
				String ch=Documents2.get(i).getNom();
				ch=ch.trim();
				ch=ch.toLowerCase();
				if (ch.equals(champ)) {
					Documents.add(Documents2.get(i));
				}
			}
		}
		fireTableDataChanged();
		
	}
	
	public void autorecherche(String champ){
		java.util.List<com.esisa.beans.Etudiant> Documents2=new ArrayList<com.esisa.beans.Etudiant>(Documents);
		Documents.clear();
		champ=champ.trim();
		champ=champ.toLowerCase();
		if (champ.equals("")) {
			ListeSCORM listGdoc=new ListeSCORM();
			listGdoc.load("resources/doc.txt");
			for (int i = 0; i < listGdoc.size(); i++) {
				Documents.add(new com.esisa.beans.Etudiant(
						listGdoc.getAt(i).getNom(),
						listGdoc.getAt(i).getPrenom(),
						listGdoc.getAt(i).getChemin(),
						listGdoc.getAt(i).getAge(),
						listGdoc.getAt(i).getAbsence(),
						listGdoc.getAt(i).getPresence(),
						listGdoc.getAt(i).getRetard(),
						listGdoc.getAt(i).getRemarque()
						)
						);
			}
		}else{
			int longeur=champ.length();
			String ch;
			for (int i = 0; i < Documents2.size(); i++) {
				ch=Documents2.get(i).getNom();
				ch=ch.trim();
				ch=ch.toLowerCase();
				ch=ch.substring(0, longeur);
				if (ch.equals(champ)) {
					Documents.add(Documents2.get(i));
				}
			}
			fireTableDataChanged();
		}
		fireTableDataChanged();
		
	}
}
